//=================sys_setup===================
/* -   
void sys_setup(void) {
u8 pos=1,flag=3,rezhim_tmp,rezhim_mtchktmp,key,tmp,tmp1;
u16 hsec=0;
//#asm("cli");
rezhim_tmp=rezhim;
rezhim=0;                                               //   decode_rtc
while (flag!=1) {
    switch(pos) {
 /*   case 1:                 //    
//        tchkmode=0;        //        
        data[0]=pos;
        sek_snap--;
        tmp=rezh_tchk;
        while (pos==1) {
            key=but_any;
            switch (klava()) {
            case but_up :
                if (rezh_tchk==4){
                    rezh_tchk=1;}
                else {
                    rezh_tchk++;};
                sek_snap--;
            break;
            case but_down :
                if (rezh_tchk==1){
                    rezh_tchk=4;}
                else {
                    rezh_tchk--;};
                sek_snap--;
            break;
            case but_left :
                pos--;
                sek_snap--;
            break;
            case but_right :
                pos++;
            break;
            case but_set :
                flag=1;
            break;
            case but_mode :
                flag=1;
            break;
            default:
                key=but_ret;
            }; 
            if (pos==0) {
                flag=1; };
            if (flag==1) {
                pos=0; };
            data[2]=rezh_tchk; data[3]=RTC_data[1];
            reg_output(1,0,0);
            wait_key(key,1,0,0);
            };
        if (tmp!=rezh_tchk) {
            eep_write(rezh_tchk_addr,rezh_tchk);};
    break;                                                                   */
 /*   case 3:                 //    12/24
        tchk=0x0032;        //        
        tchk_load();
        data[1]=pos; data[2]=0; 
        sek_snap--;
        while (pos==3) {
            tmp=RTC_data[3]&0x3F;
            key=but_any;
            switch (klava()) {
            case but_up :
                while (RTC_data[1]==0x59) {};
                #asm("cli")
                if ((RTC_data[3]&0x40)==0) {
                    RTC_data[3]&=~0xC0; }                     //   AM/PM  12/24 (AM, 24)
                else {
                    RTC_data[3]=RTC_data[3]+but_set;
                    if ((tmp==0x1A)||(tmp==0x1B)){
                        RTC_data[3]=RTC_data[3]+0x6;  };   
                    RTC_data[3]&=~0xC0; };                    //   AM/PM  12/24 (AM, 24)
                pcf_write (RTC_data[3], 4);
                #asm("sei")
                sek_snap--;
            break;
            case but_down :
                while (RTC_data[1]==0x59) {};
                #asm("cli");
                if (tmp>=but_set) {
                    RTC_data[3]=RTC_data[3]-but_set;
                    if ((tmp==0xE)||(tmp==0xF)){
                        RTC_data[3]=RTC_data[3]-0x6;  };   
                    RTC_data[3]|=0xC0; }                       //   AM/PM  12/24 (PM, 12)
                else {
                    RTC_data[3]|=0x80;                         //   AM/PM  12/24 (AM, 12)
                    RTC_data[3]&=~0x40; };
                pcf_write (RTC_data[3], 4);
                #asm("sei");
                sek_snap--;
            break;
            case but_left :
                pos--;
                sek_snap--;
            break;
            case but_right :
                pos++;
            break;
            case but_set :
                flag=1;
            break;
            case but_mode :
                flag=1;
            break;
            default:
                key=but_ret;
            }; 
            if (flag==1) {
                pos=0; };
            if ((RTC_data[3]&0x80)==0) {
                data[3]=0x24; }
            else {
                data[3]=but_set; };
            reg_output(0,0,0);
            wait_key(key,0,0,0);
            };
    break;                                                    */
    case 2:                                             //  RTC
        tchkmode=0;                                     // .  
        tchk=0; tchk|=(1<<10);
        
        dataout[0]=0x21;
        while (pos==2) {
            if(butup){
                peep
                switch (dataout[0]) {
                case 0x21:
                    if (calvector){
                    }
                    else{
                    }
                break;
                case 0x22:
                    if (calvector){
                    }
                    else{
                    }
                break;
                case 0x23:
                    if (calvector){
                    }
                    else{
                    }
                break; };

            }
            if(butdown){
                peep
                switch (dataout[0]) {
                case 0x21:
                    if (calvector){
                    }
                    else{
                    }
                break;
                case 0x22:
                    if (calvector){
                    }
                    else{
                    }
                break;
                case 0x23:
                    if (calvector){
                    }
                    else{
                    }
                break; };
            }
            if(butleft){
                peep
                if(dataout[0]>0x21){
                    dataout[0]--;}
                else pos--;
            }
            if(butright){
                peep
                if(dataout[0]<0x24){
                    dataout[0]++;}
                else pos++;    
            }
            if(butok){
                peep
            }
            
            if (flag==1) {
                pos=0; };
            
        };
        
    break;
    case 4:                 //  
        tchk=0x00CE;        //          
        rezhim_mtchktmp=rezh_tchk;
        rezh_tchk=but_ret;
    // tchk_load();
        data[1]=pos;
        data[3]=0;
        sek_snap--;
            tmp=OCR2/8;
            if (tmp>0xa)
                tmp=tmp+6;
            if (tmp>0x1a)
                tmp=tmp+6;
            if (tmp>0x2a)
                tmp=tmp+6;
        while (pos==4) {
                
            key=but_any;
            switch (klava()) {
            case but_up :
                if (tmp<0x33) {
                    tmp++;
                    if (tmp%0x10==0xA)
                        tmp=tmp+0x06;
                }
                sek_snap--;
            break;
            case but_down :
                if (tmp>1){
                    tmp--;
                    if (tmp%0x10==0xF)
                        tmp=tmp-0x06;
                }
                sek_snap--;
            break;
            case but_left :
                pos--;
            break;
            case but_right :
                pos++;
            break;
            case but_set :
                flag=1;
            break;
            case but_mode :
                flag=1;
            break;
            default:
                key=but_ret;
            };
            data[2]=tmp;
            tmp1=tmp;
            if (tmp1>=0x30)
                tmp1=tmp1-6;
            if (tmp1>=0x20)
                tmp1=tmp1-6;
            if (tmp1>=0x10)
                tmp1=tmp1-6;
            if (tmp1>0x1F){
                OCR2=but_ret;}
            else {
                OCR2=tmp1*8;} 
            if (flag==1) {
                pos=0; };
            reg_output(1,0,pos);
            wait_key(key,0,0,pos);
        };
        rezh_tchk=rezhim_mtchktmp;
    break;
    case 5:                 //      RTC
        tchk=0x00FE;        //     
        tchk_load();
        data[1]=pos;
        data[2]=0;
        sek_snap--;
        tmp=9;
        while (pos==5) {
            key=but_any;
            switch (klava()) {
            case but_down :
                tmp--;
                sek_snap--;
            break;
            case but_left :
                pos--;
            break;
            case but_right :
                pos++;
            break;
            case but_set :
                flag=1;
            break;
            case but_mode :
                flag=1;
            break;
            default:
                key=but_ret;
            }; 
            if (flag==1) {
                pos=0; };
            data[3]=tmp;
            reg_output(0,1,pos);
            wait_key(key,0,1,pos);
            if (tmp==0) {
                #asm("cli")
                twi_start();
                twi_write (WRITE_PCF);			//   + 
                twi_write (1);				//    -
                for (tmp=1;tmp<5;tmp++)
                twi_write (0);		    //  
                /*twi_write (0);		    //  
                twi_write (0);		    //  
                twi_write (0);		    //     */
                twi_write (0x1);		//  
                twi_write (0x1);		//  
                twi_stop();
                
           //     delay_ms(100);
                eep_write(rezh_tchk_addr,1);         //  eeprom  
                eep_write(year_addr,0);
                eep_write(hyear_addr,0);
               // #asm("JMP 0x0")
                global_year=0;
                hyear=0;
                pos=0;
                flag=1;
                #asm("sei")
            };
        };
    };
};
//#asm("sei");
tchk=0x00FF;        //    
tchk_load();
sek_snap--;      
rezhim=rezhim_tmp;
};
//---------------------------------------------
//---------------------------------------------    */